var over = 0;
var flag = 0;               // 0: 单选  1：多选
var action = 0;
var _order_by = null;
var selectedItemList = {};  // 选定的数据列表OnMultiChoice
var numCheckbox = 0;

var thisPage = {
    first: 0,
    // 初始化页面
    OnPageLoad: function () {
        if (parseInt(flag) === 0) {
            // 如果是单选情况，那么隐藏【确定】按钮
            $("#ButOk").remove();
        }
        if (parseInt(flag) === 1) {
            // 设置全选框
            var html = '<label class="btn" for="CheckAll" style="margin-left:7px;"><input id="CheckAll" type="checkbox" onclick="thisPage.DoCheckAll($(this));" /><i></i><span></span></label>';
            $("#th-checkall").text('');
            $(html).appendTo($("#th-checkall"));
        }
        
        $("abbr.page_indicator_block,#wrapper__navbar").attr("_msh_page", 1);
        thisPage.FetchForPage(1);
    },
    // 得到分页数据
    GetFilter: function (pageIndex) {
        if (pageIndex !== 0) {
            $("abbr.page_indicator_block,#wrapper__navbar").attr("_msh_page", pageIndex);
        }
        var item = {};
        item['Limit'] = parseInt($("#page-size").val());
        item['PageIndex'] = parseInt($("abbr.page_indicator_block,#wrapper__navbar").attr("_msh_page"));
        item['OrderBy'] = _order_by;
        item['GroupNameFilterValue'] = $.trim($('#GroupNameFilterValue').val());   // 筛选
        return JSON.stringify(item);
    },
    //《按钮》显示全部
    FetchAll: function () {
        $("#GroupNameFilterValue").val("");
        thisPage.FetchForPage(1);
    },
    // 得到数据列表信息
    FetchForPage: function (pageIndex) {
        $.ajax({
            type: "POST",
            url: parent.basePath + '/master/customer_group/fetchForPage.html',
            timeout: 30 * 1000,
            data: thisPage.GetFilter(pageIndex),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            beforeSend: function () {
                // 显示刷新动画
                $("#loading__indicator i").addClass("fa-spin");
                $("#loading__indicator").show();
            }
        }).done(function (data) {
            if (data.Success === true) {
                thisPage.BuildDataTable(data);
            } else {
                $('#loading').hide();
            }
        }).fail(function (data) {
            $('#loading').hide();
            ajaxError(data, 1);
        }).always(function () {
            thisPage.first = 1;
            // 隐藏刷新动画
            $("#loading__indicator i").removeClass("fa-spin");
            $("#loading__indicator").hide();
        });
    },
    // 构建数据列表
    BuildDataTable: function (result) {
        // 设置翻页控件
        if (result.TotalPages > 0) {  //总页数
            $("#wrapper__navbar").data("swPagination").options.max_page = result.TotalPages;
        } else {
            $("#wrapper__navbar").data("swPagination").options.max_page = 1;
        }
        if (result.PageIndex > 0) { //当前页数
            $("#wrapper__navbar").data("swPagination").options.current_page = result.PageIndex;
            $("#wrapper__navbar").data("swPagination").setPage(result.PageIndex);
        } else {
            $("#wrapper__navbar").data("swPagination").options.current_page = 1; //当前页数
            $("#wrapper__navbar").data("swPagination").setPage(1);
        }

        $("#tabData01 tbody").empty();
        // 得到数据列表
        result = result.DataList;
        if (result === null) {
            numCheckbox = 0;
            $('#loading').hide();
            return false;
        }
        var content = '';
        numCheckbox = result.length;
        for (var i = 0; i < result.length; i++) {
            var id = result[i].groupId;
            content += '<tr _mash_id="' + id + '">';
            if (parseInt(flag) === 0) { // 单选
                content += '<td style="padding-left:9px;"><label class="btn" for="R-' + id + '"><input id="R-' + id + '" name="_select_row" type="radio" onclick="thisPage.OnChoice($(this));" value="' + id + '"/><i></i><span></span></label></td>';
            } else { // 多选
                content += '<td style="padding-left:9px;"><label class="btn" for="R-' + id + '"><input id="R-' + id + '" name="_check_row" type="checkbox" onclick="thisPage.DoCheckRow($(this));" value="' + id + '"/><i></i><span></span></label></td>';
            }
            content += '<td>' + formatNullData(result[i].groupNo) + '</td>';      // 编号
            content += '<td>' + formatNullData(result[i].groupName) + '</td>';    // 名称
            content += '<td>' + formatNullData(result[i].description) + '</td>';
            content += '</tr>';
            $("#tabData01 tbody").append(content);
            content = '';
        }
        setOneTableRowColor("tabData01");
        // 恢复选定结果
        thisPage.ResetSelectRowStatus();
        
        $(window).resize();               // 防止因为出现滚动条而造成画面显示问题
        $('#loading').hide();
    },
    SetPageSize: function () {
        thisPage.FetchForPage(1);
        $.cookie("customer_group_list_pagesize", $("#page-size").val());
    },
    // 选择后执行的动作
    OnChoice: function (self) {
        var $row = self.parent().parent().parent();
        var _groupNo = $.trim($row.find('td').eq(1).text());

        //设置选择结果
        var item = new Array(self.val(), _groupNo);
        window.parent.arrChoice.push(item);
        window.parent.choice_success = true;
        closePopupWnd();
    },
    // 多选后结果
    OnMultiChoice: function () {
        var result = [];
        // 判断是否做了选择
        if (Object.keys(selectedItemList).length > 0) {
            for (var key in selectedItemList) {
                var instance = selectedItemList[key];
                result.push(instance);
            }
            parent.arrChoice.push(result);
            parent.choice_success = true;
        } else {
            parent.choice_success = false;
        }

        closePopupWnd();
    },
    // 选择全部或者全部清除
    DoCheckAll: function (self) {
        if (self.is(":checked") === true) {
            $("input[type='checkbox'][name='_check_row']").each(function () {
                $(this).prop('checked', true);
                thisPage.SetRowStatus($(this));
            });
        } else {
            $("input[type='checkbox'][name='_check_row']").each(function () {
                $(this).prop("checked", false);
                thisPage.SetRowStatus($(this));
            });
        }
    },
    // 选择一行
    DoCheckRow: function (self) {
        var n = $("input[type='checkbox'][name='_check_row']:checked").length;
        if (n < numCheckbox) {
            $("#CheckAll").prop("checked", false);
        } else {
            $("#CheckAll").prop("checked", true);
        }
        thisPage.SetRowStatus(self);
    },
    SetRowStatus: function (self) {
        var item = {};
        var $row = self.parent().parent().parent();
        var key = self.val();

        if (self.is(":checked") === true) {
            $row.addClass("row__selected");

            item["groupId"] = key;
            item['groupNo'] = $.trim($row.find('td').eq(1).text());
            item['groupName'] = $.trim($row.find('td').eq(2).text());

            selectedItemList[key] = item;  // 更新或者增加该选择
        } else {
            $row.removeClass("row__selected");

            delete selectedItemList[key]; // 删除该选择
        }
    },
    // 每次翻页都恢复选定结果
    ResetSelectRowStatus: function () {
        $("#tabData01 tr").each(function (index) {
            var key = $(this).children("td").eq(0).children("label").eq(0).children("input[type='checkbox'][name='_check_row']").eq(0).val();
            if (selectedItemList[key] !== undefined) {
                $(this).children("td").eq(0).children("label").eq(0).children("input[type='checkbox'][name='_check_row']").eq(0).prop('checked', true);
                $(this).addClass("row__selected");
            }
        });
        var n = $("input[type='checkbox'][name='_check_row']:checked").length;
        if (n < numCheckbox) {
            $("#CheckAll").prop("checked", false);
        } else {
            $("#CheckAll").prop("checked", true);
        }
    },
    OnlineEdit: function () {
        location = parent.basePath + '/master/customer_group/online/edit.html';
    }
};

//-----------------------------------------------------------------------------
// 表格排序
//-----------------------------------------------------------------------------
function sortTable(order_by) {
    _order_by = order_by;
    thisPage.FetchForPage(1);
}

//-----------------------------------------------------------------------------
// 页面初始化
//-----------------------------------------------------------------------------
function onPageReady() {
    // 从url得到相关参数
    flag = jQuery.url.param("flag") === undefined ? 0 : jQuery.url.param("flag");
    
    //设置分页控制
    $("#wrapper__navbar").swPagination({
        link_string: '/?page={page_number}',
        max_page: null,
        paged: function (page) {
            $("abbr.page_indicator_block,#wrapper__navbar").attr("_msh_page", page);
            thisPage.FetchForPage(page);
        }
    });
    thisPage.OnPageLoad();
}

// 画面大小或者位置移动
function onPageResize() {
    var h = $(window).height();
    var w = $(window).width();
    over = 1;
}